package servlets;

import java.io.IOException;
import java.util.ArrayList;

import javax.servlet.RequestDispatcher;
import javax.servlet.Servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.Logger;

import business.Cliente;
import business.Funcionario;
import business.Venda;
import dao.FuncionarioDao;
import dao.ProdutoDao;

public class ServletFuncionario extends HttpServlet implements Servlet 
{
	private static final Logger log = Logger.getLogger( ServletFuncionario.class );
	
	FuncionarioDao funcionariodao = new FuncionarioDao();
	
	protected void doGet(HttpServletRequest request, 
			HttpServletResponse response) 
			throws ServletException, IOException 
	{
		doPost(request,response);
	}
	
	protected void doPost(HttpServletRequest request, 
				  HttpServletResponse response) 
				  throws ServletException, IOException
	{
		String comando = request.getParameter("comando");
		
		if (comando == null)
		{
			response.sendRedirect("funcionarios.jsp");
		}		
		else if (comando.equals("inserir"))
		{
			String id =request.getParameter("id");
			String nome = request.getParameter("nome");
			String cpf = request.getParameter("cpf");
			String tCel = request.getParameter("telCel");
			String endereco = request.getParameter("endereco");
			String tFixo = request.getParameter("telFixo");
			String tPessoa = request.getParameter("tPessoa");
			String rg = request.getParameter("rg");
			String dia = request.getParameter("dia");			
			String mes = request.getParameter("mes");
			String ano = request.getParameter("ano");
			String matricula = request.getParameter("matricula");
			String cargo = request.getParameter("cargo");
			String salario = request.getParameter("salario");
			String login = request.getParameter("login");
			String senha = request.getParameter("senha");
			String status = request.getParameter("status");
			
			if (nome.equals("") || matricula.equals(""))
			{
				response.sendRedirect("funcionarioInserir.jsp?mensagem=Nome ou Matricula em Branco!");
			}
			else
			{
				Funcionario f1 = new Funcionario();
				
				log.debug(cpf);
				f1.setCpf(cpf);
				log.debug(nome);
				f1.setNome(nome);
								
				log.debug(id);
				try {
					f1.setId(Integer.parseInt(id));
				} catch (NumberFormatException e1) {
					log.error("Number Format Exception", e1);
					f1.setId(0);
				}
				log.debug(tCel);
				try {
					f1.setTCel(Integer.parseInt(tCel));
				} catch (NumberFormatException e) {
					log.error("Number Format Exception", e);
					f1.setTCel(0);
				}
				log.debug(endereco);
				f1.setEndereco(endereco);
				log.debug(tFixo);
				try {
					f1.setTFixo(Integer.parseInt(tFixo));
				} catch (NumberFormatException e) {
					log.error("Number Format Exception", e);
					f1.setTFixo(Integer.parseInt(tFixo));
				}
				log.debug(tPessoa);
				f1.setTPessoa(tPessoa);
							
				f1.setDt_Nasc(ano+"-"+mes+"-"+dia);
				log.debug(rg);
				f1.setRg(rg);
			
				log.debug(matricula);
				try {
					f1.setMatricula(Integer.parseInt(matricula));
				} catch (NumberFormatException e) {
					log.error("Number Format Exception", e);
				}
				
				log.debug(cargo);
				try {
					f1.setCargo(Integer.parseInt(cargo));
				} catch (NumberFormatException e) {
					log.error("Number Format Exception", e);
				}
				
				log.debug(login);
				f1.setLogin(login);
				log.debug(senha);
				f1.setSenha(senha);
				log.debug(status);
				f1.setStatus(status);
				
				log.debug(salario);
				try {
					f1.setSalario(Double.parseDouble(salario));
				} catch (NumberFormatException e) {
					log.error("Number Format Exception", e);
				}
				
				funcionariodao.adicionarFuncionario(f1);
				
				response.sendRedirect("funcionarioInserir.jsp?mensagem=funcionario Inserido com Sucesso!");
			}}
			else if (comando.equals("remover"))
			{
				String idParam = request.getParameter("id");
				int    id      = Integer.parseInt(idParam);
				
				funcionariodao.removerFuncionario(id);
				
				response.sendRedirect("funcionarioRemover.jsp?mensagem=funcionario Removido com Sucesso!");			
			}
			else if (comando.equals("listar"))
			{
				ArrayList funcionarios = funcionariodao.listarFuncionario();
				
				request.setAttribute("lista_funcionario",funcionarios);
				
				RequestDispatcher rd = request.getRequestDispatcher("fucnionarioListar.jsp");
				rd.forward(request,response);			
			}else if (comando.equals("consultar"))
			{
				String matricula = request.getParameter("matricula");
			}
		}
	}










